# 2010-06-26 by Gnacik
# Based on official server Franz
# update by pmq
# High Five 12-2-2011
import sys
from com.l2jserver.gameserver.ai                    import CtrlIntention
from com.l2jserver.gameserver.model.quest           import State
from com.l2jserver.gameserver.model.quest           import QuestState
from com.l2jserver.gameserver.model.quest.jython    import QuestJython as JQuest
from com.l2jserver.gameserver.network.serverpackets import ExStartScenePlayer
from com.l2jserver.gameserver.network.serverpackets import NpcSay

qn = "193_SevenSignDyingMessage"

# NPCs
HOLLINT       = 30191  # 大神官 霍尔林特
CAIN          = 32569  # 神官 凯因
ERIC          = 32570  # 采药师 艾力克
ATHEBALDT     = 30760  # 古斯达夫 亚太法特卿
SHILENSEVIL   = 27343  # 席琳的邪念
# ITEMS
JACOB_NECK    = 13814  # 雅各的项链
DEADMANS_HERB = 13816  # 死者的药草
SCULPTURE     = 14353  # 疑问的雕像

# 大神官 霍尔林特
# 30191-03.htm
hollint_03 = "<html><body>大神官 霍尔林特：<br>负责慰灵祭的是<font color=\"LEVEL\">神官凯因</font>。<br>他在<font color=\"LEVEL\">欧瑞城镇湖水附近的慰灵祭祭坛</font>附近。<br>还有，我在那项链已有融入祝福的祈祷，这事情也请您别忘了转告神官凯因。<br>愿殷海萨的祝福与您同在...</body></html>"
#
# 神官 凯因
# 32569-01.htm
cain_01 = "<html><body>神官 凯因：<br>竟然会有个陌生人来找我，看来在这世上的某个角落，又有一个生命失去了他的光芒...<br>嗯，你是来为谁举行慰灵祭的呢？告诉我来龙去脉吧。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_02\">我是前来举行雅各的慰灵祭</a></body></html>"
# 32569-02.htm
cain_02 = "<html><body>神官 凯因：<br>契约官？真是奇怪啊...前几天才刚刚结束了一个慰灵祭，也是与财富的商人交易过的另一个矮人契约官..<br>你说又有一个契约官死了是吗？！..嗯..<br>是谁介绍你过来的？<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_03\">我是经由大神官霍尔林特介绍过来的</a></body></html>"
# 32569-03.htm
cain_03 = "<html><body>神官 凯因：<br>你说的是欧瑞城镇的大神官霍尔林特吗？<br>这么说，这次死的契约官是在负责缔结欧瑞城镇与财富的商人之间的契约啰。<br>上次死的是高达特城的契约官呢..<br>既然是由你来举行慰灵祭，那么第一个发现尸体的人应该就是你吧。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_04\">是的，没错</a></body></html>"
# 32569-04.htm
cain_04 = "<html><body>神官 凯因：<br>你真是替人行善啊..不过在进行慰灵祭之前，我们有个问题存在。<br>为了在慰灵祭祭坛点香的话，就要用到叫做<font color=\"LEVEL\">“死者的药草”</font>的东西...但最近举行的慰灵祭太多，所以药草也都用完了。<br>再加上，答应要送来死者的药草的<font color=\"LEVEL\">采药师艾力克</font>又迟迟未到...<br>他肯定是为了采集神奇的药草，忘了我的委托。<br>你去找艾力克，帮我领取<font color=\"LEVEL\">“死者的药草”</font>好吗？为了举行慰灵祭，必须要有死者的药草才行。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_05\">我会帮你领取死者的药草回来</a></body></html>"
# 32569-05.htm
cain_05 = "<html><body>神官 凯因：<br>谢谢你！那么，赶紧去找<font color=\"LEVEL\">采药师艾力克</font>，<br>然后，尽量多领取一些<font color=\"LEVEL\">“死者的药草”</font>。<br>我想他应该会在<font color=\"LEVEL\">妖精谷</font>的附近，因为那个地方以出产珍贵的药草而闻名。<br>还有，如果你有带来死者的遗物，就把它交给我吧。<br>哦！！！在遗物上散发着神圣的气息，看来霍尔林特已将为死者祝福的祈祷融入了其中。不愧是霍尔林特。<br>那么，你就快去领回药草吧。</body></html>"
# 32569-06.htm
cain_06 = "<html><body>神官 凯因：<br>不要耽搁，快去找在<font color=\"LEVEL\">妖精谷</font>附近的<font color=\"LEVEL\">采药师艾力克</font>，<br>而且不要忘了领回<font color=\"LEVEL\">“死者的药草”</font>！！！</body></html>"
# 32569-07.htm
cain_07 = "<html><body>神官 凯因：<br>带回<font color=\"LEVEL\">死者的药草</font>啦，把它交给我吧。<br>真是辛苦你了。那么我们就来正式地举行慰灵祭。<br>靠过来一点，然后以虔诚的心开始举行慰灵祭吧。那么，准备好了吗？<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage 9\">是的，准备好了</a></body></html>"
# 32569-08.htm
cain_08 = "<html><body>神官 凯因：<br>真奇怪...你也看到了吗？<br>当我把遗物献到祭坛时。往祭坛上方直冲的充满邪恶的黑色火焰...<br>自从举行慰灵祭以来，从来没有发生过这样的事情！！！<br>真想不透那黑色火焰的意义..如果不是含有死者强烈的心愿...那就表示杀人犯的邪恶气息融进了遗物之中...<br>总之，最好还是得仔细观察这个项链。<br>咦！！！那个怪人是谁？！！<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_09\">环视周围</a></body></html>"
# 32569-09.htm
cain_09 = "<html><body>神官 凯因：<br>突然冒出来的那个怪人是什么？<br>要来攻击我们了！！！事情我们稍后再谈！！！<br>当务之急是要处理掉那个怪人！！！</body></html>"
# 32569-10.htm
cain_10 = "<html><body>神官 凯因：<br>竟然会被怪人突袭...从项链中散发黑色气息后，怪人就出现了。<br>可能在这死亡的背后，有个需要查明的讯息..没错，好像是有个<font color=\"LEVEL\">死前的讯息</font>。<br>我在想，当我将这项链献上祭坛时，那股具有邪恶气息且直冲的黑色火焰，好像就与那个来历不明的怪人有连贯性。<br>我认为这是雅各想要揭发有关自己和<font color=\"LEVEL\">契约官们死亡</font>的真相，所以他那含有坚强意愿的项链，才会引来那个怪手。<br>而那个怪人就是为了阻止那个真相被揭发，所以才会来抢夺那个项链。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_11\">继续听故事</a></body></html>"
# 32569-11.htm
cain_11 = "<html><body>神官 凯因：<br>契约官们的连续死亡事件和那个怪人..以及连那个出现在慰灵祭的不吉利的气息...<br>而且至今我所调查的结果，和你会被牵扯到这件事情...或许也不能说是个纯粹的偶然..<br>不过，你有听说过关于<font color=\"LEVEL\">七封印</font>的事情吗？<br>没错，就是为了封印石，<font color=\"LEVEL\">黎明和黄昏之间的竞争</font>。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_12\">我有听说过</a></body></html>"
# 32569-12.htm
cain_12 = "<html><body>神官 凯因：<br>其实，我是隶属于黎明的秘密干员。<br>现在会由我来担任慰灵祭的神官，也是因为黎明的首脑部认为，最近发生的可疑的连续死亡事件和七封印有连贯性。<br>而且，不枉费这段期间的等待，那个来历不明的怪人，终于在今天出现了。<br>然后，杀掉那个怪人的你，就是我们黎明这一方非拥有不可的人。<br>怎么样...要不要和我们黎明一起合作？总觉得要是就这样错过你，我一定会非常后悔的。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage cain_13\">我想要一起合作</a></body></html>"
# 32569-13.htm
cain_13 = "<html><body>神官 凯因：<br>太好了！！！！你一定是个最佳人选，来揭发连续死亡事件和七封印之间的连贯性。<br>以我这微弱的预知能力也能够感受到呢。<br>来，那么去拜访负责我们黎明军事的<font color=\"LEVEL\">古斯达夫 亚太法特卿</font>，他在离这里不远的<font color=\"LEVEL\">欧瑞城镇</font>。<br>去找他，并告诉他是由我介绍过来的。<br>有关留在项链的死前的讯息和怪人的事情，我会再做点研究，然后另外向亚太法特卿提交调查报告。<br>那么，赶快去找<font color=\"LEVEL\">古斯达夫 亚太法特卿</font>吧。<br>还有一点！！！那个怪人或许会跟踪你，所以务必要加紧防备后方！！！！</body></html>"
#
# 采药师 艾力克
# 32570-01.htm
eric_01 = "<html><body>采药师 艾力克：<br>有何贵干？找我这贫穷的采药师有事吗？<br>若想要劫财，我看你是白跑一趟。我拥有的，也只不过是这几根草罢了。<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage eric_02\">我是受神官凯因的委托而来的</a></body></html>"
# 32570-02.htm
eric_02 = "<html><body>采药师 艾力克：<br>神官凯因？哎呀！！！！糟糕，我竟然忘得一干二净。<br>一上年纪啊，事情自然就记不清了...<br>我一心寻找“精灵的含泪草”..竟然把它给忘了。<br>那你就是来领取凯因委托的“死者的药草”的吗？<br>来，“死者的药草”在这里。赶快拿去交给凯因，然后顺便跟他说声抱歉。</body></html>"
# 32570-03.htm
eric_03 = "<html><body>采药师 艾力克：<br>上年纪了，随时都会有记不清事情的时候...<br>你还没出发啊？<br>赶快将药草转交给凯因。</body></html>"
#
# 古斯达夫 亚太法特卿
# 30760-01.htm
athebaldt_01 = "<html><body>古斯达夫 亚太法特卿：<br>你是神官凯因介绍过来的？哦！！原来是你啊。我从凯因那里已有听到消息，<br>凯因还说了很多有关你的好话呢。<br>我有很多事情想要听你说，而且也想说给你听。<br>但是在那之前，我想先表示谢意，感谢你曾协助神官凯因，帮了我们黎明需要调查的事情。<br>你会接受我们黎明的答谢吗？<br><a action=\"bypass -h Quest 193_SevenSignDyingMessage athebaldt_02\">我会诚心接受</a></body></html>"
# 30760-02.htm
athebaldt_02 = "<html><body>古斯达夫 亚太法特卿：<br>来，接受我们的答谢吧。<br>那么，我想你也该累了，放松旅途的劳顿后，再来找我吧。<br>有关七封印的事情，我有很多话要对你说。</body></html>"

class Quest (JQuest) :
	def __init__(self,id,name,descr):
		JQuest.__init__(self,id,name,descr)
		self.questItemIds = [JACOB_NECK, DEADMANS_HERB, SCULPTURE]

	def onAdvEvent(self, event, npc, player) :
		htmltext = event
		st = player.getQuestState(qn)
		if not st : return

		if event == "30191-02.htm" :
			st.set("cond","1")
			st.setState(State.STARTED)
			st.giveItems(JACOB_NECK, 1)
			st.playSound("ItemSound.quest_accept")
		elif event == "cain_05" :
			htmltext = cain_05
			st.set("cond","2")
			st.takeItems(JACOB_NECK,1)
			st.playSound("ItemSound.quest_middle")
		elif event == "eric_02" :
			htmltext = eric_02
			st.set("cond","3")
			st.giveItems(DEADMANS_HERB, 1)
			st.playSound("ItemSound.quest_middle")
		elif event.isdigit() :
			if int(event) == 9 :
				st.takeItems(DEADMANS_HERB,1)
				st.set("cond","4")
				st.playSound("ItemSound.quest_middle")
				player.showQuestMovie(int(event))
				return ""
		elif event == "cain_09" :
			htmltext = cain_09
			npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"“" + player.getName() + "”！我们得击倒那个怪人，我会尽全力来帮你的！"))
			monster = self.addSpawn(SHILENSEVIL, 82624, 47422, -3220, 0, False, 60000, True)
			monster.broadcastPacket(NpcSay(monster.getObjectId(),0,monster.getNpcId(),"那个物品的主人不是你们..."))
			monster.setRunning()
			monster.addDamageHate(player,0,999)
			monster.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, st.getPlayer())
		elif event == "cain_13" :
			htmltext = cain_13
			st.set("cond","6")
			st.takeItems(SCULPTURE,1)
			st.playSound("ItemSound.quest_middle")
		elif event == "athebaldt_02" :
			htmltext = athebaldt_02
			st.addExpAndSp(52518015,5817677)
			#st.addExpAndSp(25000000,2500000)  # 嗨翻天 经验值
			st.unset("cond")
			st.setState(State.COMPLETED)
			st.exitQuest(False)
			st.playSound("ItemSound.quest_finish")
		#  大神官 霍尔林特
		elif event == "hollint_03" :
			htmltext = hollint_03
		#  神官 凯因
		elif event == "cain_01" :
			htmltext = cain_01
		elif event == "cain_02" :
			htmltext = cain_02
		elif event == "cain_03" :
			htmltext = cain_03
		elif event == "cain_04" :
			htmltext = cain_04
		elif event == "cain_05" :
			htmltext = cain_05
		elif event == "cain_06" :
			htmltext = cain_06
		elif event == "cain_07" :
			htmltext = cain_07
		elif event == "cain_08" :
			htmltext = cain_08
		elif event == "cain_09" :
			htmltext = cain_09
		elif event == "cain_10" :
			htmltext = cain_10
		elif event == "cain_11" :
			htmltext = cain_11
		elif event == "cain_12" :
			htmltext = cain_12
		elif event == "cain_13" :
			htmltext = cain_13
		#  采药师 艾力克
		elif event == "eric_01" :
			htmltext = eric_01
		elif event == "eric_02" :
			htmltext = eric_02
		elif event == "eric_03" :
			htmltext = eric_03
		#  古斯达夫 亚太法特卿
		elif event == "athebaldt_01" :
			htmltext = athebaldt_01
		elif event == "athebaldt_02" :
			htmltext = athebaldt_02
		return htmltext

	def onTalk (self, npc, player) :
		htmltext = Quest.getNoQuestMsg(player)
		st = player.getQuestState(qn)
		if not st : return htmltext

		npcId = npc.getNpcId()
		id = st.getState()
		cond = st.getInt("cond")

		if id == State.COMPLETED :
			htmltext = Quest.getAlreadyCompletedMsg(player)
		elif id == State.CREATED :
			if npcId == HOLLINT and cond == 0 :
				first = player.getQuestState("192_SevenSignSeriesOfDoubt")
				if first and first.getState() == State.COMPLETED and player.getLevel() >= 79 :
					htmltext = "30191-01.htm"
				else :
					htmltext = "30191-00.htm"
					st.exitQuest(True)
		elif id == State.STARTED :
			if npcId == HOLLINT :
				if cond == 1 :
					htmltext = hollint_03
			elif npcId == CAIN :
				if cond == 1 :
					htmltext = cain_01
				elif cond == 2 :
					htmltext = cain_06
				elif cond == 3 :
					htmltext = cain_07
				elif cond == 4 :
					htmltext = cain_08
				elif cond == 5 :
					htmltext = cain_10
			elif npcId == ERIC :
				if cond == 2 :
					htmltext = eric_01
				elif cond == 3 :
					htmltext = eric_03
			elif npcId == ATHEBALDT :
				if cond == 6:
					htmltext = athebaldt_01
		return htmltext

	def onKill(self, npc, player, isPet) :
		st = player.getQuestState(qn)
		if not st : return
		if npc.getNpcId() == SHILENSEVIL and st.getInt("cond") == 4 :
			npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getNpcId(),"“" + player.getName() + "”！现在我就让你一步..不过，我一定会抓到你的。"))
			npc.broadcastPacket(NpcSay(32569,0,32569,"很好，“" + player.getName() + "”。很高兴能帮得上你。"))
			st.giveItems(SCULPTURE, 1)
			st.set("cond", "5")
			st.playSound("ItemSound.quest_middle")
		return

QUEST	= Quest(193,qn,"七封印，死前的讯息")

QUEST.addStartNpc(HOLLINT)
QUEST.addTalkId(HOLLINT)
QUEST.addTalkId(CAIN)
QUEST.addTalkId(ERIC)
QUEST.addTalkId(ATHEBALDT)
QUEST.addKillId(SHILENSEVIL)